iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
Software Development

Playwright 玩家攻略:從新手村到魔王關系列 第 2

Day 2:挑選適合的武器|Playwright、Cypress、Selenium 的優劣對決!

  • 分享至 

  • xImage
  •  

說到網頁自動化測試,首先不得不提已有超過 15 年歷史的 Selenium,作為自動化測試的先驅,發展成熟,支援多種語言,也有眾多第三方工具可以使用,是自動化測試的首選。

再來則是 2017 年問世,廣為人知的 Cypress,也受到許多開發者的喜愛,當然還有各式各樣的自動化測試工具,例如:Puppeteer、NightWatch、TestNG、Cucumber...,那麼,為什麼是 Playwright 呢?

首先我們先對其中常見的三個 E2E 測試工具: SeleniumCypress 以及 Playwright ,針對支援程度、效能、開發體驗等各方面進行比較:

項目 Selenium Cypress Playwright
支援作業系統 Windows / macOS / Linux Windows / macOS / Linux Windows / macOS / Linux
程式語言 Python / JavaScript / TypeScript / Java / C# JavaScript / TypeScript JavaScript / TypeScript / Python / Java / .NET
支援瀏覽器 IE / Edge / Chrome / Firefox / Safari Chrome / Chromium / Edge / Firefox / WebKit Chromium / Edge / Firefox / WebKit
瀏覽器運作方式 WebDriver 驅動,需額外配置 直接控制瀏覽器 原生 API 控制瀏覽器
驅動管理 每個瀏覽器需單獨配置 自動管理 自動管理
行動裝置測試 第三方套件 需使用 Ionic 套件 支援原生模擬
iFrame 處理 最成熟 不支援跨域 iFrame,需額外處理 iFrame 支援完整
Tabs 處理 最成熟 單網域單標籤,不支援點擊連結後到另一個網域,必須移除 tatget 或攔截行為 Tabs 支援完整
Parallel 平行測試 透過 TestNG / JUnit / Pytest Cypress Cloud 支援 內建支援
Auto-waiting 顯式或隱式等待 自動等待 自動等待
XPath / Selector XPath 強大 CSS Selector 主導 支援 CSS / XPath / text Selector
UI Runner Selenium IDE 有
Dashboard 第三方工具 Cypress Cloud
Report 第三方工具 內建報告 內建報告
Recorder Selenium IDE 有
截圖 / 錄影 第三方工具 內建截圖 / 錄影 內建截圖 / 錄影
語法風格 傳統命令式 現代、流暢 現代、流暢
程式碼量 較多 較少 較少
學習曲線 中低
社群資源 非常豐富 豐富 成長中
中文資源 官方提供中文文件 中文教學文章多、有中文書籍 資源最少,多奇教育入門課程
付費版本 Cypress Cloud

💡 特色小整理

  • Selenium:歷史悠久、穩定、支援多語言與多瀏覽器,但程式碼量大,學習曲線陡峭。
  • Cypress:現代化、易上手、程式碼量最少,但瀏覽器與平行測試支援有限。
  • Playwright:功能完整、支援多瀏覽器核心、內建平行測試與自動等待,程式碼量少,適合新專案。

三把自動化測試武器,看起來每一把都功能強大,卻也脾性各異,該如何選擇,最終必須回歸團隊的核心需求,武器功能是否強大固然重要,但最最最重要的,還是合不合適,就如同奧利凡德為每位魔法師挑選的不是最強大的魔杖,而是「最契合」的那一支!

對於我們團隊來說,Playwright 以下幾個特點是它突破重圍的原因:

  1. 由 Microsoft 開發,背後有堅實可靠的開發團隊,Selenium 雖有豐富的第三方套件可使用,但更新速度不一,可能造成額外的負擔
  2. 團隊的目標是設定自動化測試排程,讓測試可以在下班後執行,而專案模組與功能繁多,因此撰寫測試腳本的速度,以及測試執行的速度就相當重要
  3. 專案中使用大量的 Frame、Frameset,以及大量開啟新分頁、新瀏覽器的行為,去年準備建立自動化測試時,Cypress 並不支援 Frame 的處理,官方推薦的 Plugin 也已好幾年未更新,而 Playwright 內建的 API 很完整,可以順利的處理 Frame 與 New Tab

今天透過比較,在綜合考量瀏覽器支援度、穩定性、效能與開發體驗後,Playwright 相較於 Selenium 與 Cypress,擁有全面的優勢,因此,我們確定了 Playwright 是最適合團隊的測試工具。

接下來,在 Day 3 我們就要正式開疆闢地,建立測試專案與初始化設定,打造屬於我們的 Playwright 基地!


上一篇
Day 1:冒險者登錄:踏上 Playwright 冒險之旅之前
下一篇
Day 3:建立你的基地|初始化專案與 config 神器
系列文
Playwright 玩家攻略:從新手村到魔王關3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言